home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Atari Compendium
/
The Atari Compendium (Toad Computers) (1994).iso
/
files
/
umich
/
tex
/
td187src.lzh
/
MAGICAES.D
< prev
next >
Wrap
Text File
|
1991-06-08
|
21KB
|
627 lines
(*######################################################################
MAGIC Modula's All purpose GEM Interface Cadre
¯ ¯ ¯ ¯ ¯
########################################################################
AES Application Environment Services Interface for Modula-2
########################################################################
V2.00 17.10.90 Peter Hellinger Anpassung an neues MagicSys
V1.03 26.09.90 Peter Hellinger Parameter überarbeitet
V1.02 28.06.90 Peter Hellinger Bug in OBJECT-Deklaration gefixt
V1.01 18.06.90 Peter Hellinger Xgrf-Aufrufe ergänzt
V1.00 (C) by Peter Hellinger
######################################################################*)
DEFINITION MODULE MagicAES;
FROM SYSTEM IMPORT ADDRESS;
FROM MagicSys IMPORT Nil, Null,
Bit0, Bit1, Bit2, Bit3, Bit4, Bit5, Bit6, Bit7,
Bit8, Bit9, Bit10, Bit11, Bit12, Bit13, Bit14, Bit15,
LOC, Byte, ByteSet, sWORD, sINTEGER, sCARDINAL, sBITSET,
lWORD, lINTEGER, lCARDINAL, lBITSET;
CONST MouseLeft = Bit0; (* Maustasten *)
MouseRight = Bit1;
TYPE AESGLOBAL = RECORD
apVersion: sCARDINAL;
apCount: sCARDINAL;
apId: sCARDINAL;
apPprivate: lCARDINAL;
apPtree: ADDRESS;
apPmem: ADDRESS;
apLmem: sCARDINAL;
apNplanes: sCARDINAL;
Reserved1: sCARDINAL;
Reserved2: sCARDINAL;
apBvdisk: sBITSET;
apBvhard: sBITSET;
END;
TYPE tControl = RECORD
opcode: sINTEGER;
sizeIntIn: sINTEGER;
sizeIntOut: sINTEGER;
sizeAddrIn: sINTEGER;
sizeAddrOut: sINTEGER;
END;
TYPE tIntIn = ARRAY [0..16] OF sINTEGER;
tIntOut = ARRAY [0.. 7] OF sINTEGER;
tAddrIn = ARRAY [0.. 2] OF ADDRESS;
tAddrOut = ARRAY [0.. 1] OF ADDRESS;
VAR AESControl: tControl;
AESGlobal: AESGLOBAL;
AESIntIn: tIntIn;
AESIntOut: tIntOut;
AESAddrIn: tAddrIn;
AESAddrOut: tAddrOut;
VAR AESPB: RECORD
cbControl: POINTER TO tControl;
cbPglobal: POINTER TO AESGLOBAL;
cbPintin: POINTER TO tIntIn;
cbPintout: POINTER TO tIntOut;
cbPadrin: POINTER TO tAddrIn;
cbPadrout: POINTER TO tAddrOut;
END;
VAR CallResult: sINTEGER;
PROCEDURE AESCall (op, c1, c2, c3, c4: sINTEGER): sINTEGER;
(*-- AES-Objc --------------------------------------------------------*)
CONST GBOX = 20;
GTEXT = 21;
GBOXTEXT = 22;
GIMAGE = 23;
GPROGDEF = 24;
GIBOX = 25;
GBUTTON = 26;
GBOXCHAR = 27;
GSTRING = 28;
GFTEXT = 29;
GFBOXTEXT = 30;
GICON = 31;
GTITLE = 32;
CONST SELECTABLE = Bit0;
DEFAULT = Bit1;
Exit = Bit2; (* EXIT ist reserviertes Wort... *)
EDITABLE = Bit3;
RBUTTON = Bit4;
LASTOB = Bit5;
TOUCHEXIT = Bit6;
HIDETREE = Bit7;
INDIRECT = Bit8;
CONST SELECTED = Bit0;
CROSSED = Bit1;
CHECKED = Bit2;
DISABLED = Bit3;
OUTLINED = Bit4;
SHADOWED = Bit5;
DRAW3D = Bit6;
WHITEBAK = Bit7;
CONST WHITE = 0; (* Farben *)
BLACK = 1;
RED = 2;
GREEN = 3;
BLUE = 4;
CYAN = 5;
YELLOW = 6;
MAGENTA = 7;
LWITHE = 8;
LBLACK = 9;
LRED = 10;
LGREEN = 11;
LBLUE = 12;
LCYAN = 13;
LYELLOW = 14;
LMAGENTA = 15;
TYPE BoxInfo = RECORD
char: CHAR; (* Bit 24..31 *)
frame: CHAR; (* Bit 16..23 *)
flags: sBITSET; (* Bit 0..15 *)
END;
TYPE TEDINFO = RECORD
tePtext: POINTER TO ARRAY [0..255] OF CHAR;
tePtmplt: POINTER TO ARRAY [0..255] OF CHAR;
tePvalid: POINTER TO ARRAY [0..255] OF CHAR;
teFont: sINTEGER;
teResvd1: sINTEGER;
teJust: sINTEGER;
teColor: sINTEGER;
teResvd2: sINTEGER;
teThickness: sINTEGER;
teTxtlen: sINTEGER;
teTmplen: sINTEGER;
END;
TYPE BITBLK = RECORD
biData: ADDRESS;
biWb: sINTEGER;
biHl: sINTEGER;
biX: sINTEGER;
biY: sINTEGER;
biColor: sINTEGER;
END;
TYPE PtrPARMBLK = POINTER TO PARMBLK;
PARMBLK = RECORD
pbTree: ADDRESS;
pbObj: sINTEGER;
prPrevstate: sBITSET;
prCurrstate: sBITSET;
pbX: sINTEGER;
pbY: sINTEGER;
pbW: sINTEGER;
pbH: sINTEGER;
pbXc: sINTEGER;
pbYc: sINTEGER;
pbWc: sINTEGER;
pbHc: sINTEGER;
pbParm: ADDRESS;
END;
TYPE USERBLK = RECORD
ubCode: PROC;
ubPara: PtrPARMBLK;
END;
TYPE ICONBLK = RECORD
ibPmask: ADDRESS;
ibPdata: ADDRESS;
ibPtext: ADDRESS;
ibChar: sINTEGER;
ibXchar: sINTEGER;
ibYchar: sINTEGER;
ibXicon: sINTEGER;
ibYicon: sINTEGER;
ibWicon: sINTEGER;
ibHicon: sINTEGER;
ibXtext: sINTEGER;
ibYtext: sINTEGER;
ibWtext: sINTEGER;
ibHtext: sINTEGER;
ibResvd: sINTEGER;
END;
TYPE OBJECT = RECORD
obNext: sINTEGER;
obHead: sINTEGER;
obTail: sINTEGER;
obType: sINTEGER;
obFlags: sBITSET;
obState